import java.util.Comparator;

public class ComparatorTest {
    public static void main(String[] args) {
        Comparator<Integer> comp1 = new Comparator<Integer>() {
            //定义比较规则（规范）
            //如果第一个参数小于第二个参数，   返回负数
            //如果相等   返回0
            //如果第一个参数大于第二个参数   返回正数
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1 - o2;
            }
        };
        int i = comp1.compare(1, 2);
        System.out.println("i = " + i);

        System.out.println("===使用lambda表达式===");
        //lambda
        Comparator<Integer> comp3 = (Integer o1, Integer o2) -> {
            return o1 - o2;
        };
        System.out.println(comp3.compare(2, 3));

        //------------------
        //lambda  前面定义了参数，方法参数可以省略类型 ，
        //方法体只有一行代码，去掉{}，去掉{}后如果方法体有return 去掉return
        Comparator<Integer> comp4 = (o1, o2) -> o1 - o2;
        Comparator<Integer> comp5 = (o1, o2) -> Integer.compare(o1,o2);
        Comparator<Integer> comp6 =Integer::compare;
        System.out.println(comp4.compare(2, 3));
    }
}

